package com.study.happystudy.controller;

import com.study.happystudy.entity.ResultEntity;
import com.study.happystudy.service.impl.PsyTestRecordServiceImpl;
import com.study.happystudy.tool.PsyTestHelp;
import jakarta.annotation.Resource;
import lombok.Data;
import org.springframework.web.bind.annotation.*;

@CrossOrigin
@RestController
@RequestMapping("psyTest")
public class PsyTestRecordService {
    @Resource
    PsyTestRecordServiceImpl pts;

    @PostMapping("insert")
    public Object insert(@RequestParam int userId, int correct) {
        try {
            return pts.insert(userId, correct);
        } catch (Exception e) {
            return ResultEntity.Fail(-1, e.getMessage());
        }
    }

    @GetMapping("selectByUserId")
    public Object selectByUserId(@RequestParam int userId) {
        try {
            return pts.selectByUserId(userId);
        } catch (Exception e) {
            return ResultEntity.Fail(-1, e.getMessage());
        }
    }

    @Data
    static class Count {
        int healthyCount;
        int mildCount;
        int moderateCount;
        int severeCount;
        String analysis;
    }

    @GetMapping("getCount")
    public Object getHealthyCount(@RequestParam int userId) {
        try {
            Count count = new Count();
            count.healthyCount = pts.getHealthyCount(userId);
            count.mildCount = pts.getMildCount(userId);
            count.moderateCount = pts.getModerateCount(userId);
            count.severeCount = pts.getSevereCount(userId);

            int all = count.healthyCount + count.mildCount + count.moderateCount + count.severeCount;

            int percentage = (int) ((count.healthyCount * 1.0 / all) * 100);
            String analysis = "你的健康占比约为:" + percentage + "%，";
            if (percentage >= 80 && count.severeCount == 0) {
                analysis += "没有较大的心理问题，请继续保持！";
            } else if ( percentage >= 65) {
                analysis += "康康在最近的" + all + "次检测中，察觉到你有轻度的焦虑或是抑郁。" +
                        "这在青春期的孩子中是比较常见的现象，因为在这个阶段，你可能会面临学业压力、人际关系的挑战以及自我认同感的变化。" +
                        "轻度的焦虑和抑郁通常是对这些挑战的自然反应，但也需要引起适当的关注。" +
                        "建议你试着和信任的家人或朋友聊一聊，表达自己的感受，或者通过运动、阅读、音乐等方式来放松自己。" +
                        "如果感到难以控制，可以寻求专业的心理咨询帮助，来更好地理解和管理自己的情绪。记住，这只是成长过程中的一部分，" +
                        "你并不孤单，随着时间的推移，这些感觉会逐渐改善。";
            } else if (percentage >= 40) {
                analysis += "康康在最近的" + all + "次检测中，察觉到你可能有中度的焦虑或是抑郁。" +
                        "这表明这些情绪已经开始对你的生活和学习产生一定影响，可能让你感到难以集中注意力、" +
                        "情绪低落或者对平时感兴趣的事情失去兴趣。这种情况在青少年时期并不罕见，可能与学业压力、" +
                        "家庭关系或者自我认同等方面的挑战有关。" +
                        "建议你首先尝试通过一些放松技巧来缓解压力，比如深呼吸、" +
                        "冥想或进行一些轻松的运动。保持与家人和朋友的沟通也是非常" +
                        "重要的，他们可以为你提供情感支持。如果你觉得这些情绪持续存在或" +
                        "加重，不要犹豫，尽快寻求专业心理咨询师的帮助，及时干预可以帮助你更好地应对和恢复。请记住，" +
                        "中度的焦虑和抑郁是可以通过正确的方法得到缓解的，你不是一个人，一切都会慢慢好起来。";
            } else {
                analysis += "康康在最近的" + all + "次检测中，察觉到你可能有严重的焦虑或是抑郁。" +
                        "这种情况可能已经开始影响到你的日常生活和学习。这可能与学业压力、人际关系紧张，" +
                        "或者对未来的担忧有关。严重的焦虑和抑郁是需要认真对待的，建议你尽快与家人或老师沟" +
                        "通，寻求他们的支持。同时，你可以考虑寻求专业心理咨询师的帮助，通过科学的方式来缓解" +
                        "和管理这些情绪。此外，保持规律的作息和健康的生活习惯，如适当的运动和均衡饮食，也有助" +
                        "于改善你的心理状态。记住，你并不孤单，及时向父母或是老师寻求帮助是迈向恢复的重要一步。";
            }
            count.setAnalysis(analysis);
            if (all == 0) {
                count.analysis = "您还没有做过相应的测试哦~";
            }
            return count;
        } catch (Exception e) {
            return ResultEntity.Fail(-1, e.getMessage());
        }
    }
}
